/**
 *
 */
package com.naiterui.ehp.bs.im.network.protocl;

/**
 * @author He Qiang
 * @since 1.0.0
 */
public class SessionDetails extends Session {

    /**
     * 包含推荐购药-否：<code>CONTAIN_RECOM_NO</code>
     */
    public static final int CONTAIN_RECOM_NO = 0;
    /**
     * 包含推荐购药-是：<code>CONTAIN_RECOM_YES</code>
     */
    public static final int CONTAIN_RECOM_YES = 1;
    /**
     * 包换病历
     */
    public static final int CONTAIN_RECORD_NO = 0;
    /**
     * 不包含病历
     */
    public static final int CONTAIN_RECORD_YES = 1;

    /**
     * 包含在线视频-否：<code>CONTAIN_VIDEO_NO</code>
     */
    public static final int CONTAIN_VIDEO_NO = 0;
    /**
     * 包含在线视频-是：<code>CONTAIN_VIDEO_YES</code>
     */
    public static final int CONTAIN_VIDEO_YES = 1;

    /**
     * 普通会话
     */
    public static final int CONSULT_TYPE_GENERAL = 0;


    /**
     * 线上诊室找医生会话
     */
    public static final int CONSULT_TYPE_CONSULTROOM = 2;

    /**
     * 患者回执量表信息
     */
    public static final int CONSULT_TYPE_SCALE_RECEIPT = 3;


    /**
     * 字段或域定义：<code>serialVersionUID</code>
     */
    private static final long serialVersionUID = 864196785500939787L;

    /**
     * 发送者ID
     */
    private Long fromId;

    /**
     * 接受者ID
     */
    private Long toId;

    /**
     * 就诊人ID
     */
    private Long inquirerId;

    /**
     * 会话关系
     * 0:患者发起;1医生发起;
     */
    private Integer relation;

    /**
     * 付费状态
     * 1:咨询中;2:已结束;3:已付费;
     */
    private Integer payStatus;

    /**
     * 问诊价格
     */
    private String price;

    /**
     * 最后一条消息
     */
    private Msg lastMsg;

    /**
     * 会话首条消息：<code>firstMsg</code>
     */
    private Msg firstMsg;

    // 拓展属性
    /**
     * 是否包含推荐购药：<code>containRecom</code>
     */
    private Integer containRecom;
    /**
     * 是否包含病历
     */
    private Integer containRecord;
    /**
     * 是否包含在线视频：<code>containVideo</code>
     */
    private Integer containVideo;

    /**
     * 医生端存储的会话id,2.7需求添加
     */
    private Long consultSessionId;

    /**
     * 是否专家首次咨询（0，否；1，是）
     */
    //private Integer clinicFirst;

    /**
     * 构造函数
     */
    public SessionDetails() {
        super();
        containRecom = CONTAIN_RECOM_NO;
        containVideo = CONTAIN_VIDEO_NO;
        containRecord = CONTAIN_RECORD_NO;
    }

    public Long getFromId() {
        return fromId;
    }

    public void setFromId(Long fromId) {
        this.fromId = fromId;
    }

    public Long getToId() {
        return toId;
    }

    public void setToId(Long toId) {
        this.toId = toId;
    }

    public Long getInquirerId() {
        return inquirerId;
    }

    public void setInquirerId(Long inquirerId) {
        this.inquirerId = inquirerId;
    }

    public Integer getRelation() {
        return relation;
    }

    public void setRelation(Integer relation) {
        this.relation = relation;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public Msg getLastMsg() {
        return lastMsg;
    }

    public void setLastMsg(Msg lastMsg) {
        this.lastMsg = lastMsg;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    /**
     * @return Msg 取得域 firstMsg 的方法。
     */
    public Msg getFirstMsg() {
        return firstMsg;
    }

    /**
     * @param firstMsg 对域 firstMsg 的设置方法.
     */
    public void setFirstMsg(Msg firstMsg) {
        this.firstMsg = firstMsg;
    }

    /**
     * @return Integer 取得域 containRecom 的方法。
     */
    public Integer getContainRecom() {
        return containRecom;
    }

    /**
     * @param containRecom 对域 containRecom 的设置方法.
     */
    public void setContainRecom(Integer containRecom) {
        this.containRecom = containRecom;
    }

    /**
     * @return Integer 取得域 containVideo 的方法。
     */
    public Integer getContainVideo() {
        return containVideo;
    }

    /**
     * @param containVideo 对域 containVideo 的设置方法.
     */
    public void setContainVideo(Integer containVideo) {
        this.containVideo = containVideo;
    }

    public static class Msg {

        /**
         * 消息类型
         */
        Integer type;

        /**
         * 消息内容
         */
        Object content;

        public Integer getType() {
            return type;
        }

        public void setType(Integer type) {
            this.type = type;
        }

        public Object getContent() {
            return content;
        }

        public void setContent(Object content) {
            this.content = content;
        }

    }

    public Integer getContainRecord() {
        return containRecord;
    }

    public void setContainRecord(Integer containRecord) {
        this.containRecord = containRecord;
    }

    public Long getConsultSessionId() {
        return consultSessionId;
    }

    public void setConsultSessionId(Long consultSessionId) {
        this.consultSessionId = consultSessionId;
    }

}
